Web 应用开发
20 道选择题,范围为作业范围,选择填空都出成选择题(40 分)
程序填空题,10 个空(20 分)( JDBC (重点)、Ajax (重点),HTML 不出空)
java1. @ WebServlet ("/query") public class QueryServlet extends HttpServlet { protected void doPost(HttpServletRequest req, HttpServletResponse resp) { // 1. 注册驱动 Class. forName ("com.mysql.cj.jdbc.Driver"); // 2. 连接 String url = "jdbc:mysql://127.0.0.1:3306/school?useSSL=true"; Connection conn = DriverManager.getConnection(url,"root","123456"); // 3. 写 SQL String sql = "SELECT * FROM t_user"; // 4. 执行 SQL Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery (sql); // 5. 关闭资源 rs.close(); stmt.close(); conn.close(); PrintWriter wr = resp.getWriter (); wr.println("success"); } } 2. <form name="loginForm" action="LoginServlet" method="post"> <p>user name: <input type="text" name="user" value=""/></p> <p>password: <input type="password" name="pwd" value=""/></p> <input type="submit" name="login" value="Login"/> </form> @ WebServlet("/LoginServlet ") public class LoginServlet extends HttpServlet{ protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String user = req.getParameter("user"); String password = req.getParameter("pwd"); Class.forName("com.mysql.cj.jdbc.Driver"); String url = "jdbc://127.0.0.1:3306/school?useSSL=true"; Connection conn = DriverManager.getConnection(url,"root","123456"); String sql = "SELECT * FROM t_user where username=? and password=?"; PreparedStatement stmt = conn.prepareStatement (sql); stmt.setString(1,user); stmt.setString(2, password); ResultSet rs = stmt.executeQuery(); if (rs.next()) request.setAttribute("result", "success"); else request.setAttribute("result", "fail"); RequestDispatcher disp = req.getRequestDispatcher("/result.jsp"); dispatcher.forward(request,response); } } 3. <script type="text/javascript"> $("#btn ").click (function () { $.ajax({ url:"query", // 请求地址 data:$("#queryForm").serialize() , // 请求数据 type: 'post', // 请求方式 dataType: ' json', // 结果返回类型 success :function (data) { alert("button"); } }); }); </script> 4. <form id="loginForm"> <p>用户名: <input type="text" id="userName" name="userName" /></p> <p>密码: <input type="password" id="password" name="password" /></p> <input type="button" name="btn_login" value="登录"/> </form> <script type="text/javascript"> $("#·btn_login").click(function () { $.ajax({ url :"user/login", data:$("#loginForm").serialize(), type: 'post', dataType: 'json', success:function (json) { if(json.code=="success") window.location.href ="product.html"; else alert("登录失败"); } }); }); </script>简答题 4 道(一个五分,以下4个出3个 20 分)
xml5. pom.xml中引用组件的写法(考一个) <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.13</version> <scope>runtime</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.0.1</version> <scope>provided</scope> </dependency> 6. VUE和React两种前端框架的特点对比: vue前端框架特点: 渐进式框架:可逐步引入,从简单的视图层库到完整框架; 模板语法友好:使用类似 HTML 的模板语法,学习曲线平缓; 响应式数据绑定:基于 Proxy 的自动依赖追踪,数据变化自动更新视图; 单文件组件:将模板、逻辑、样式集中在 .vue 文件中 React 的特点 声明式 UI:通过 JSX 声明组件结构,UI 随状态变化; 组件化思想:组件复用性强; 单向数据流:数据从上向下传递,状态可预测; 函数式编程:Hooks 让函数组件拥有状态和生命周期 7.MVC框架将应用分为三个核心组件: 模型(Model):负责业务逻辑与数据操作,封装数据规则并与数据库交互。它不依赖视图和控制器。 视图(View):负责用户界面展示,接收模型数据生成HTML/JSON等输出。视图不处理业务逻辑。 控制器(Controller):接收用户请求,调用模型处理业务,再选择合适的视图进行响应。 相互关系:控制器接收请求 → 调用模型获取或修改数据 → 将数据传递给视图 → 视图渲染结果返回给用户。模型变化时通常会通知视图更新(观察者模式)。三者分离降低了耦合,提高可维护性。 8. 5种JSP内置对象及其作用域 request 作用域:Request(一次请求,可经转发传递) 封装客户端请求数据(参数、头、属性等)。 response 作用域:Page(仅当前页面响应) 封装服务器对客户端的响应操作(如重定向、设置头信息)。 session 作用域:Session(同一用户多个请求期间) 存储特定用户会话期间的私有数据(如登录信息)。 application 作用域:Application(整个 Web 应用,所有用户共享) 存储全局数据(如计数器、配置参数),对应 ServletContext。 pageContext 作用域:Page(仅当前 JSP 页面) 代表页面运行环境,可获取其他所有内置对象,并能将数据存储到 page、request、session、编程题(20 分)
javaimport java.io.IOException; import javax.servlet.*; import javax.servlet.annotation.WebFilter; @WebFilter("/*") public class EncodingFilter implements Filter { public void init(FilterConfig config) throws ServletException {} public void destroy() {} public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { String servletPath = httpRequest.getServletPath(); if (servletPath.endsWith(".jsp")) { request.setCharacterEncoding("UTF-8"); chain.doFilter(request, response); } } }java10. Controller,Service(接口和实现),DAO(基于JPARepository),Entity 保存数据的实现过程 (1) Controller @RestController @RequestMapping("/person") public class PersonController { @Autowired private PersonService personService; @PostMapping("/save") public MvcResult<Person> save(@RequestBody Person person) { return personService.save(person); } } (2) Service 接口及实现 public interface PersonService { MvcResult<Person> save(Person person); } @Service public class PersonServiceImpl implements PersonService { @Autowired private PersonDao personDao; @Override public MvcResult<Person> save(Person person) { personDao.save(person); return MvcResult.success(person); } } (3) DAO @Repository public interface PersonDao extends JpaRepository<Person, Integer> { } (4) Entity @Entity @Table(name = "t_person") public class Person { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name="id") private Integer id; @Column(name = "name", nullable = false, length = 255) private String name; // getter、setter ... }